<!DOCTYPE html>
<html lang="zh-cn">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <link rel="stylesheet" href="../assets/css/base.css">
    <style>
        .box{
            width: 500px;
            height: 320px;
            border: 1px solid black;
        }
    </style>
</head>

<body>
    <div id="app">
        <pre v-pre class="note">
        vm.$refs：返回一个对象，记录当前Vue实例模板中，定义了ref属性的所有 DOM 元素。
            + 为三方插件提供DOM加载方案
                => 通过为标签增加 ref="自定义字符串" 属性，让vue在运行时自动完成当前元素的DOM加载，并以自定义字符串作为$refs对象的属性进行DOM记录
                => 在vue的运行环境中以安全行为方式提供三方插件需要的DOM对象 【在虚拟DOM学习时详细解释】

            + 为vue组件化提供组件加载方案【组件化开发中进行讲解】
        </pre>
        <div class="box" ref="chartA">

        </div>
        <div class="box" ref="chartB">

        </div>
        <input type="button" value="初始化图表" @click="initEcharts()">
        <br><br>
        <input type="button" value="$refs" @click="printRefs()">

    </div>
    <script type="module">
        import { createApp } from "../assets/vue3/vue.esm-browser.js";
        import * as echarts from '../assets/echarts/echarts.esm.js';
        createApp({
            data () {
                return {
                    options: {
                        title: {
                            text: 'ECharts 入门示例'
                        },
                        tooltip: {},
                        legend: {
                            data: ['销量']
                        },
                        xAxis: {
                            data: ['衬衫', '羊毛衫', '雪纺衫', '裤子', '高跟鞋', '袜子']
                        },
                        yAxis: {},
                        series: [
                            {
                                name: '销量',
                                type: 'bar',
                                data: [5, 20, 36, 10, 10, 20]
                            }
                        ]
                    }
                }
            },
            methods: {
                initEcharts() {
                    // 初始化echarts ==> echarts.init(DOM)
                    // DOM的直接查询操作方案，在vue环境中不建议使用 - 因为可能会出现加载不到DOM的问题
                    // let myChart = echarts.init( document.querySelector(".box") )
                    // $refs 可以完成安全DOM加载
                    let myChartA = echarts.init( this.$refs.chartA )
                    let myChartB = echarts.init( this.$refs.chartB )

                    myChartA.setOption(this.options)
                    myChartB.setOption(this.options)

                },
                printRefs(){
                    console.log("$refs:",this.$refs)
                }
            },
        }).mount("#app")
    </script>
</body>

</html>